# ===============================================================================================  文件的读取操作
#  r:读取     w:写入      a:追加写入
# =============================================================================
f = open("E:/excel学习文档-表格/bill.txt", "r", encoding="UTF-8")
print(type(f))

# 读取文件 - read()
print(f"read()读取10个字节：{f.read(10)}")
print(f"读取全部内容：{f.read()}")  # ---下一个read会在上一个read的基础上继续读取余下内容

# 读取文件 - readlines()
print(f"readlines()读取全部内容：{f.readlines()}")  # --- 读取到文件的全部行，封装到列表中

# 读取文件 - readline()
line1 = f.readline(1)
line2 = f.readline(2)
line3 = f.readline(3)
print(f"第一行读取的内容：{line1}")
print(f"第二行读取的内容：{line2}")
print(f"第三行读取的内容：{line3}")

# for循环读取文件行
for line in f:
    print(f"每一行内容是：{line}")

# 文件的关闭
f.close()
import time

time.sleep(500000)

# with open 语法操作文件 ---- 执行完之后会自动关闭文件
with open("E:\excel学习文档-表格\lianxi.txt", "r", encoding="UTF-8") as f:
    for line in f:
        print(f"读取的内容是：{line}")
# ----------------------------------------------------------------------------------        练习1(txt文件中的单词计数）
f = open("E:\excel学习文档-表格\word.txt", 'r', encoding="ANSI")

# 方法1：
line = f.read()
print(f"{line},{type(line)}")

# 计算有多少个itheima
count = line.count("itheima")
print(f"itheima出现的次数为：{count}")
f.close()

# 方法2：
count = 0
for line in f:
    # print(f"{line},{type(line)}")
    line = line.strip()  # --- 去除首位的空格及换行符（每一行）
    words = line.split(" ")  # --- 以空格分列（每行的所有单词）
    for word in words:
        if word == "itheima":
            count += 1
print(f"itheima出现的次数是:{count}")

# ===============================================================================================  文件的写出操作

# # 打开不存在的文件
f = open("E:/excel学习文档-表格/test.txt", "w", encoding="UTF-8")

# write写入
f.write("hello world!\n你好！！！")  # --- 内容写入python内存中

# flush刷新                        # --- 将内存中积攒的内容，写入到硬盘中的文件中
f.flush()

import time

time.sleep(600000)
# close关闭
f.close()  # --- close方法，内置了flush功能

# --------------------
# 打开存在的文件
f = open("E:/excel学习文档-表格/test.txt", "w", encoding="UTF-8")

# write写入
f.write("黑马程序员")  # --- 用"w"打开，文件不存在，会创建新文件；文件存在，会清空原有内容

# ===============================================================================================  文件的追加写入操作
f = open("E:/excel学习文档-表格/test.txt", "a", encoding="UTF-8")
f.write("\n最佳选择")
f.close()

# ===============================================================================================  文件操作的综合案例
fr = open("E:/excel学习文档-表格/bill.txt", "r", encoding="UTF-8")
fw = open("E:/excel学习文档-表格/bill.txt.bak", "w", encoding="UTF-8")

for line in fr:
    line = line.strip()
    print(line)
    if line.split("，")[4] == "测试":
        continue
    fw.write(line)
    fw.write("\n")
fr.close()
fw.close()
